﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace Engine.Sgml {
    /// <summary>
    /// Provides data for the Changing and Changed events.
    /// </summary>
    public sealed class SObjectChangeEventArgs : EventArgs {
        [DebuggerBrowsable(DebuggerBrowsableState.Never)]
        internal static SObjectChangeEventArgs Add = new SObjectChangeEventArgs(SObjectChangeTypes.Add);
        [DebuggerBrowsable(DebuggerBrowsableState.Never)]
        internal static SObjectChangeEventArgs Remove = new SObjectChangeEventArgs(SObjectChangeTypes.Remove);
        [DebuggerBrowsable(DebuggerBrowsableState.Never)]
        internal static SObjectChangeEventArgs Move = new SObjectChangeEventArgs(SObjectChangeTypes.Move);
        [DebuggerBrowsable(DebuggerBrowsableState.Never)]
        private SObjectChangeTypes changeType;

        /// <summary>
        /// Initializes a new instance of the SObjectChangeEventArgs class. 
        /// </summary>
        /// <param name="changeType">An SObjectChangeTypes object.</param>
        public SObjectChangeEventArgs(SObjectChangeTypes changeType) {
            this.changeType = changeType;
            }

        /// <summary>
        /// Gets the type of change.
        /// </summary>
        public SObjectChangeTypes ChangeType { get { return changeType; } }
        }
    }
